perm filename DESTRU.TIM[TIM,LSP]13 blob
sn#763210 filedate 1984-07-31 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00019 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00003 00002 SAIL
C00006 00003 DESTRU
C00007 00004 DESTRU
C00008 00005 NIL
C00009 00006 ∂09-Oct-83 0957 jkf@ucbkim destru
C00018 00007 SCORE Oct 18, 1983
C00019 00008 DEC780CL
C00020 00009 InterLisp Vax 780
C00021 00010 PSL-20 3.3
C00022 00011 PSL-Cray 3.2
C00023 00012 PSL-750 3.2
C00024 00013 PSL-780 3.2
C00025 00014 PSL-DN600 3.2
C00026 00015 PSL-DN300 3.2
C00027 00016 PSL-dn160
C00028 00017 ∂21-May-84 2120 EJG smaller and better DESTRUCTIVE timings
C00030 00018 PERQ 6/18/84
C00031 00019 PSL Numbers 7/31/84
C00032 ENDMK
C⊗;
;;; SAIL
(FASLOAD DESTRU)
(TIMIT)
Timing performed on Thursday 09/23/82 at 14:51:40.
Cpu Time = 2.472
Elapsed Time = 28.2666667
Wholine Time = 14.3
GC Time = 5.795
Load Average Before = 1.25672555
Load Average After = 1.73288608
Average Load Average = 1.49480581
NIL
Timing performed on Thursday 09/23/82 at 14:52:11.
Cpu Time = 2.47
Elapsed Time = 36.883333
Wholine Time = 12.9333333
GC Time = 5.387
Load Average Before = 1.74602473
Load Average After = 1.88764822
Average Load Average = 1.81683648
NIL
Timing performed on Thursday 09/23/82 at 14:52:51.
Cpu Time = 2.47
Elapsed Time = 36.0333333
Wholine Time = 13.1666666
GC Time = 5.401
Load Average Before = 1.899001
Load Average After = 2.04023933
Average Load Average = 1.96962017
NIL
;;; New CPU
(timit)
Timing performed on Wednesday 10/12/83 at 21:03:14.
Cpu (- GC) Time = 2.159
Elapsed Time = 14.5
Wholine Time = 8.4333333
GC Time = 5.378
Load Average Before = 0.209593892
Load Average After = 0.29597497
Average Load Average = 0.25278443
NIL
Timing performed on Wednesday 10/12/83 at 21:03:35.
Cpu (- GC) Time = 2.159
Elapsed Time = 20.0666666
Wholine Time = 9.4333333
GC Time = 5.385
Load Average Before = 0.295405984
Load Average After = 0.485271096
Average Load Average = 0.39033854
NIL
Timing performed on Wednesday 10/12/83 at 21:04:12.
Cpu (- GC) Time = 2.158
Elapsed Time = 14.15
Wholine Time = 11.4
GC Time = 5.385
Load Average Before = 0.448821545
Load Average After = 0.5322814
Average Load Average = 0.49055147
NIL
;;DESTRU
D3
No RPLCONS (push instead)
Elapsed 7.19
GC 3.41
CPU 3.77
With RPLCONS
Elapsed 9.02
GC 3.32
CPU 5.7
;;; DESTRU
D2
No RPLCONS (push instead)
Elapsed 38.2
GC 9.31
CPU 28.9
Elapsed 37.7
GC 9.04
CPU 28.7
With RPLCONS
Elapsed 35.3
GC 8.04
CPU 27.2
Elapsed 35.1
GC 8.17
CPU 26.9
Elapsed 35.0
GC 7.97
CPU 27.0
D1
1/25/84 with interrupts
Elapsed 26.85
CPU 17.6
GC 9.27
;;; NIL
DESTRU
Fixnum arithmetic, as always.
Curio: NCONC uses LAST which does error and circularity checking.
cpu=14.65,elapsed=15.14,pagefaults=749
cpu=14.5,elapsed=14.68,pagefaults=724
cpu=14.6,elapsed=14.74,pagefaults=722
Inline carcdr:
cpu=9.09,elapsed=10.01,pagefaults=738
cpu=8.95,elapsed=8.96,pagefaults=734
cpu=9.02,elapsed=9.15,pagefaults=712
Another curio: Use of SETF instead of RPLACA/D would result in
infinitessimally better code because of the different return value.
Not bothering to try this.
∂09-Oct-83 0957 jkf@ucbkim destru
Received: from UCBKIM by SU-AI with TCP/SMTP; 9 Oct 83 09:56:55 PDT
Received: by ucbkim.ARPA (4.6/4.2)
id AA17828; Sun, 9 Oct 83 10:00:19 PDT
Date: Sun, 9 Oct 83 10:00:19 PDT
From: John Foderaro (on an h19-u) <jkf@ucbkim>
Message-Id: <8310091700.AA17828@ucbkim.ARPA>
To: rpg@su-ai
Subject: destru
Cc:
--- Benchmark destru run on ucbkim at Sat Oct 8 01:22:39 PDT 1983 by jkf
--- cpu usage: 1:22am up 1:53, 4 users, load average: 1.32, 1.38, 1.37
Franz Lisp, Opus 38.81
=> [fasl destru.o]
t
=> benchmark: test (file destru) , tranlinks: on, localf: no
executing form: (destructive 600 50)
begin (49 176)
end (765 583)
runs 1
avg cpu time 5.15, avg gc time 6.783333333333333
benchmark: test (file destru) , tranlinks: off, localf: no
executing form: (destructive 600 50)
begin (766 583)
end (1589 989)
runs 1
avg cpu time 6.95, avg gc time 6.766666666666667
nil
=> Franz Lisp, Opus 38.81
=> [fasl destru-l.o]
t
=> benchmark: test (file destru) , tranlinks: on, localf: yes
executing form: (destructive 600 50)
begin (43 173)
end (753 571)
runs 1
avg cpu time 5.2, avg gc time 6.633333333333333
benchmark: test (file destru) , tranlinks: off, localf: yes
executing form: (destructive 600 50)
begin (754 571)
end (1574 973)
runs 1
avg cpu time 6.966666666666667, avg gc time 6.7
nil
=> Franz Lisp, Opus 38.81
=> [load destru.l]
[fasl benchmac.o]
t
=> benchmark: test (file destru) , tranlinks: on, interpreted
executing form: (destructive 600 50)
begin (66 177)
end (9984 607)
runs 1
avg cpu time 158.1333333333333, avg gc time 7.166666666666667
benchmark: test (file destru) , tranlinks: off, interpreted
executing form: (destructive 600 50)
begin (9987 607)
end (19864 1006)
runs 1
avg cpu time 157.9666666666667, avg gc time 6.65
nil
=> --- cpu usage: 1:30am up 2 hrs, 4 users, load average: 1.28, 1.22, 1.29
--- end of benchmark destru
--- Benchmark destru run on ucbmatisse at Fri Oct 7 10:59:38 PDT 1983 by jkf
--- cpu usage: 10:59am up 3 days, 22:45, 2 users, load average: 1.00, 1.04, 1.09
Franz Lisp, Opus 38.81
=> [fasl destru.o]
t
=> benchmark: test (file destru) , tranlinks: on, localf: no
executing form: (destructive 600 50)
begin (118 197)
end (1056 614)
runs 1
avg cpu time 8.683333333333333, avg gc time 6.95
benchmark: test (file destru) , tranlinks: off, localf: no
executing form: (destructive 600 50)
begin (1059 614)
end (2179 1073)
runs 1
avg cpu time 11.01666666666667, avg gc time 7.65
nil
=> Franz Lisp, Opus 38.81
=> [fasl destru-l.o]
t
=> benchmark: test (file destru) , tranlinks: on, localf: yes
executing form: (destructive 600 50)
begin (118 195)
end (1060 609)
runs 1
avg cpu time 8.8, avg gc time 6.9
benchmark: test (file destru) , tranlinks: off, localf: yes
executing form: (destructive 600 50)
begin (1062 609)
end (2209 1072)
runs 1
avg cpu time 11.4, avg gc time 7.716666666666667
nil
=> Franz Lisp, Opus 38.81
=> [load destru.l]
[fasl benchmac.o]
t
=> benchmark: test (file destru) , tranlinks: on, interpreted
executing form: (destructive 600 50)
begin (143 201)
end (16300 702)
runs 1
avg cpu time 260.9333333333333, avg gc time 8.35
benchmark: test (file destru) , tranlinks: off, interpreted
executing form: (destructive 600 50)
begin (16304 702)
end (32406 1254)
runs 1
avg cpu time 259.1666666666667, avg gc time 9.2
nil
=> --- cpu usage: 11:11am up 3 days, 22:57, 3 users, load average: 1.05, 1.16, 1.15
--- end of benchmark destru
--- Benchmark destru run on ucbmike at Fri Oct 7 12:05:16 PDT 1983 by jkf
--- cpu usage: 12:05pm up 2:37, 0 users, load average: 1.08, 1.06, 1.06
Franz Lisp, Opus 38.79
-> [fasl destru.o]
t
-> benchmark: test (file destru) , tranlinks: on, localf: no
executing form: (destructive 600 50)
begin (89 322)
end (1469 863)
runs 1
avg cpu time 13.98333333333333, avg gc time 9.016666666666667
benchmark: test (file destru) , tranlinks: off, localf: no
executing form: (destructive 600 50)
begin (1473 863)
end (3164 1406)
runs 1
avg cpu time 19.13333333333333, avg gc time 9.050000000000001
nil
-> Franz Lisp, Opus 38.79
-> [fasl destru-l.o]
t
-> benchmark: test (file destru) , tranlinks: on, localf: yes
executing form: (destructive 600 50)
begin (88 324)
end (1471 866)
runs 1
avg cpu time 14.01666666666667, avg gc time 9.033333333333333
benchmark: test (file destru) , tranlinks: off, localf: yes
executing form: (destructive 600 50)
begin (1475 866)
end (3167 1409)
runs 1
avg cpu time 19.15, avg gc time 9.050000000000001
nil
-> Franz Lisp, Opus 38.79
-> [load destru.l]
[fasl benchmac.o]
t
-> benchmark: test (file destru) , tranlinks: on, interpreted
executing form: (destructive 600 50)
begin (120 328)
end (19517 904)
runs 1
avg cpu time 313.6833333333333, avg gc time 9.6
benchmark: test (file destru) , tranlinks: off, interpreted
executing form: (destructive 600 50)
begin (19525 904)
end (38990 1556)
runs 1
avg cpu time 313.55, avg gc time 10.86666666666667
nil
-> --- cpu usage: 12:19pm up 2:51, 0 users, load average: 1.01, 1.03, 1.04
--- end of benchmark destru
;;; SCORE Oct 18, 1983
LISP
LOAD(DESTRU.IL)
MAKEFILE(DESTRUCTIVE)
BCOMPL(DESTRUCTIVE)
ST
(TIME (DESTRUCTIVE 600 50) 1 3)
(TIME (DESTRUCTIVE 600 50) 1 3)
collecting lists
10381, 10381 free cells
collecting lists
10521, 10521 free cells
collecting lists
10521, 10521 free cells
collecting lists
10521, 10521 free cells
43105 conses
9.206 seconds
1.427 seconds, garbage collection time
((1 1 2) (1 1 1) (1 1 1 2) (1 1 1 1) (1 1 1 1 2) (1 1 1 1 2) (1 1 1 1 2)
(1 1 1 1 2) (1 1 1 1 2) (1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 3))
←
;;; DEC780CL
cpu + probability x gc
DESTRU 7.7 + 0.2 x 16
*************************************************************************
Name of VAXLisp VAXLisp VAXLisp VAXLisp
application U1.0-20 U1.0-20 U1.0-20 U1.0-20
Benchmark VMS V3.5 VMS V3.5 VMS V3.5 VMS V3.6
730 (No FPA) 750 (No FPA) 780 785 (No FPA)
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Destru 26.41 11.30 6.38 4.35
;;; InterLisp Vax 780
DESTRUCTIVE:
←(TIME (DESTRUCTIVE 600 50]
43110 conses
18.304 seconds
((1 1 2) (1 1 1) (1 1 1 2) (1 1 1 1) (1 1 1 1 2) (1 1 1 1 2) (1 1 1 1 2) (1 1 1
1 2) (1 1 1 1 2) (1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 3))
;;; PSL-20 3.3
`Destructive' Test
Timing performed on DEC-20
23-Mar-84 05:06:02 .
........................................
Cpu (- GC) Time = 2.381 secs
Elapsed Time = 2.0 secs
GC Time = 0.0 secs
Load Average Before = 1.1
Load Average After = 1.1
Average Load Average = 1.1
;;; PSL-Cray 3.2
;;; Times are in milliseconds
08:27:55 004:05.339 `Destructive' Test
08:28:05 004:07.958 Cpu (- GC) Time = 451.72600000 secs$2 π
08:28:07 004:08.479 Elapsed Time = 0. secs
08:28:09 004:08.999 GC Time = 0. secs
08:28:10 004:09.519 Load Average Before = 0
08:28:12 004:10.039 Load Average After = 0
08:28:15 004:10.560 Average Load Average = 0.
;;; PSL-750 3.2
Cpu (- GC) Time = 7.225 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before = 0
Load Average After = 0
Average Load Average = 0.0
;;; PSL-780 3.2
Cpu (- GC) Time = 3.876 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before = 0
Load Average After = 0
Average Load Average = 0.0
;;; PSL-DN600 3.2
Cpu (- GC) Time = 10.591 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before = 0
Load Average After = 0
Average Load Average = 0.0
;;; PSL-DN300 3.2
Cpu (- GC) Time = 10.161 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before = 0
Load Average After = 0
Average Load Average = 0.0
;;; PSL-dn160
`Destructive' Test
Timing performed on Apollo
today 12:00:00.
........................................
Cpu (- GC) Time = 7.4299999 secs
Elapsed Time = 0.0 secs
GC Time = 0.0 secs
Load Average Before = 0
Load Average After = 0
Average Load Average = 0.0
∂21-May-84 2120 EJG smaller and better DESTRUCTIVE timings
So, I threw (DESTRUCTIVE 600 50) into a ten-iteration DO loop and
compiled it. With allocation still happening (now allocating 16
segmentitos at a time, thanks to Rod), and even with 3 or 4 allocation
messages printing (turned 'em back on), I get a wallclock time
of 1.0 seconds per iteration!
∂22-May-84 1152 EJG@S1-A.ARPA DESTRUCTIVE better & better
Received: from S1-A.ARPA by SU-AI.ARPA with TCP; 22 May 84 11:52:15 PDT
Date: 22 May 84 1149 PDT
From: Erik Gilbert <EJG@S1-A.ARPA>
Subject: DESTRUCTIVE better & better
To: rpg@SU-AI.ARPA
I tried it again with the official Mark IIA debugging stopwatch and got
0.91 seconds per iteration (same test as before) repeatably!!
;;; PERQ 6/18/84
26.09 seconds (stopwatch)
7/31/84
Benchmark % of old time Time Machine used
Destruct 85% 22.15 Joe's T2
;;; PSL Numbers 7/31/84
|KL-10b| 20-60 | 20-60 | 3600 | 20-60 | CRAY | 12Mhz| HP-UX
Benchmark |MACLSP|InterLsp|PSL 3.2| ZetaL|PSL 3.3|PSL3.2| HP200|PSL3.3
--------------------------------------------------------------------------
Destruct | 2.16| 9.206| 2.381| 3.94| 1.85| 0.466| 4.25| 4.69